/*
 * Sincroniza listas de trabajo
 *
 *  Este proceso se inicia cuando se inicia el DokStat y se mantiene corriendo hasta 
 *  que se termina el programa. Se dedica unica y exclusivamente a 
 *  la sincronizacion de las listas de trabajo.
 *  --------------------------------------------------------------------------- 
 *
 * Created febrero 16 - 2014
 *
 */
package com.servitware.cr.crdoc.sincro;

import java.util.Calendar;
import javax.swing.JTextField;

public abstract class OLD_Synchronizer extends Thread
{
    private final long SEGUNDO = 1000;
    private final long UN_MINUTO = 1000 * 60;
    private final long QUINCE_MINUTOS = 1000 * 60 * 15;

    private String name;
    private JTextField reportTo;

    /*
     * por defecto asignamos periodos de 10 minutos
     * en dev =asignamos 1
     */
    private long restTime = UN_MINUTO;

    
    /**
     * Creates a new instance of SincWL
     * <p>
     * @param name
     * @param worker
     * @param pRestTime
     * @param report
     */
    public OLD_Synchronizer(String name, Long pRestTime, JTextField reportTo)
    {
        if (name == null)
        {
            this.name = "Sinc-";
        }
        else
        {
            this.name = "Sinc-" + name;
        }

        if (pRestTime != null)

        {
            if (pRestTime.longValue() < UN_MINUTO)
            {
                restTime = UN_MINUTO;
            }
            else if (pRestTime.longValue() > QUINCE_MINUTOS)
            {
                restTime = QUINCE_MINUTOS;
            }
            else
            {
                restTime = pRestTime.longValue();
            }
        }

        this.reportTo = reportTo;
    }

    
    protected final long getRestTime()
    {
        return restTime;
    }
    
    public final void setRestTime(Long pRestTime)
    {
        /*
         * fijamos valor por defecto
         */
        restTime = UN_MINUTO;        
        
        if (pRestTime != null)

        {
            if (pRestTime.longValue() < UN_MINUTO)
            {
                restTime = UN_MINUTO;
            }
            else if (pRestTime.longValue() > QUINCE_MINUTOS)
            {
                restTime = QUINCE_MINUTOS;
            }
            else
            {
                restTime = pRestTime.longValue();
            }
        }

    }
     
    protected final void report()
    {
        Calendar cal = Calendar.getInstance();
        int hora = cal.get(Calendar.HOUR_OF_DAY);
        int min = cal.get(Calendar.MINUTE);
        String minStr = min > 10 ? String.valueOf(min) : "0" + String.valueOf(min);

        int sec = cal.get(Calendar.MINUTE);
        String secStr = sec > 10 ? String.valueOf(sec) : "0" + String.valueOf(sec);

        reportTo.setText( name + " - " + String.valueOf(hora) + ":" + minStr + ":" + secStr );
    }


}
